Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for flash memory include personal computers, personal digital assistants (PDAs), digital cameras, and cellular telephones. Program code and system data such as a basic input/output system (BIOS) are typically stored in flash memory devices for use in personal computer systems.
A flash memory is a type of memory that can be erased and reprogrammed in blocks instead of one byte at a time. A typical flash memory comprises a memory array organized in columns and rows. Changes in threshold voltage of the memory cells, through programming of charge storage structures (e.g., floating gates or charge traps) or other physical phenomena (e.g., phase change or polarization), determine the data value of each cell. The cells are usually grouped into blocks. Each of the cells within a block can be electrically programmed, such as by charging the charge storage structure. The data in a cell of this type is determined by the presence or absence of the charge in the charge storage structure. The charge can be removed from the charge storage structure by an erase operation.
As the physical size of memory arrays is decreased in order to increase the density of memory devices, the reduced proximity of the memory cells can result in problems with capacitive coupling. For example, charge storage structure-to-charge storage structure (e.g., floating gate-to-floating gate) capacitive coupling between adjacent memory cells can cause the programming of one memory cell to “pull-up” the threshold voltage of an adjacent memory cell to a higher threshold voltage. This coupling can result in errors reading the affected memory cell since its threshold voltage can be increased beyond a normal target voltage for a particular programmed state.
Some types of read errors can be corrected by error correction coding (ECC). However, ECC uses additional controller time that could be used for other functions and can take up additional memory locations in the memory array that can be used as user memory.
For the reasons stated above and for other reasons stated below that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art to reduce the impact of charge storage structure-to-charge storage structure coupling in memory.